package cn.tedu.file;

import java.io.*;

/**
 * @author :Colin
 * @version 创建时间: 2021/6/17 10:19
 */
/*本类用于练习字节输入流*/
public  class TestIn {
    public static void main(String[] args) {
        //method();
        method2();//高效字节流
    }

    private static void method2() {
        InputStream in=null;
        try {
//            InputStream in=new BufferedInputStream(
//                    new FileInputStream(new File("D:\\PUNK\\1.TXT")));
            in=new BufferedInputStream(new FileInputStream("D:\\PUNK\\1.TXT"));
            int b;
            while((b=in.read())!=-1){
                System.out.println(b);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally{
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }

    private static void method() {
        //InputStream in =new InputStream();
        //File f=new File("D:\\PUNK\\1.TXT");
        InputStream in= null;//不写null不报错，局部变量一般都赋值
        try {
            //InputStream in= new FileInputStream(new File("D:\\PUNK\\1.TXT"));方法一：括号里面用file方法，麻烦
            in= new FileInputStream("D:\\PUNK\\1.TXT");
            /*read（）每次调用都会读取一个字节，如果读到了数据的末尾，返回值是-1}*/
//            System.out.println(in.read());
//            System.out.println(in.read());
//            System.out.println(in.read());
//            System.out.println(in.read());
//            System.out.println(in.read());
            //需求：需要循环读取文件中的所有内容，直至读完
            //定义变量，记录读到的数据
            int b;
            while((b=in.read())!=-1){
                System.out.println(b);
            }
        } catch (Exception e) {
            e.printStackTrace();//打印错误信息
            /*try-catch结构中的第三个部分，finally{}
            * 这部分不论是否捕获到异常，是一定会被执行到的代码，常用于关流*/
        }finally{

            //释放资源
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

}
